//
// Created by liangwenhao on 2024/4/4.
//

#include "rc_task.h"

extern uint8_t sbus_rx_buffer[RC_DATA_LENGTH];
void RcData_Task(void *argument)//FreeRTOS任务函数
{
    Rc_Start();
    for(;;)
    {
        osStatus_t ret = osSemaphoreAcquire(RcSemBinaryHandle, 20);//获取信号量
        if (ret == osOK)//osOK：操作成功完成
        {                                  
            RC_Ctl_last=RC_Ctl;
            RCData_Process(&RC_Ctl, sbus_rx_buffer);
            Rc_Start();//前面有Rc_Start函数，所以这里放在数据结算之后
            RCData_back_one();
        }
        else
        {
            Rc_Start();
            RC_Ctl.Rc_Dog.rc_dog++;
        }
        RC_Ctl.Rc_Dog.rc_is_valid = Rc_CRC();//校验
    }
}
